#include "coil.h"

#define COIL_1_Pin GPIO_PIN_3
#define COIL_1_GPIO_Port GPIOG
#define COIL_2_Pin GPIO_PIN_2
#define COIL_2_GPIO_Port GPIOG
#define COIL_3_Pin GPIO_PIN_15
#define COIL_3_GPIO_Port GPIOD
#define COIL_4_Pin GPIO_PIN_14
#define COIL_4_GPIO_Port GPIOD
#define COIL_5_Pin GPIO_PIN_4
#define COIL_5_GPIO_Port GPIOG
#define COIL_6_Pin GPIO_PIN_5
#define COIL_6_GPIO_Port GPIOG
#define COIL_7_Pin GPIO_PIN_6
#define COIL_7_GPIO_Port GPIOG
#define COIL_8_Pin GPIO_PIN_7
#define COIL_8_GPIO_Port GPIOG
#define COIL_9_Pin GPIO_PIN_8
#define COIL_9_GPIO_Port GPIOA
#define COIL_10_Pin GPIO_PIN_9
#define COIL_10_GPIO_Port GPIOC
#define COIL_11_Pin GPIO_PIN_12
#define COIL_11_GPIO_Port GPIOA
#define COIL_12_Pin GPIO_PIN_11
#define COIL_12_GPIO_Port GPIOA


void DRV8870_1_Run(uint8_t cmd)
{
	if(cmd == 1) {
		// 正转
		HAL_GPIO_WritePin(COIL_1_GPIO_Port, COIL_1_Pin, GPIO_PIN_SET);
	}
	if(cmd == 0) {
		// 停止
		HAL_GPIO_WritePin(COIL_1_GPIO_Port, COIL_1_Pin, GPIO_PIN_RESET);
	}
}

void DRV8870_2_Run(uint8_t cmd)
{
	if(cmd == 1) {
		// 正转
		HAL_GPIO_WritePin(COIL_2_GPIO_Port, COIL_2_Pin, GPIO_PIN_SET);
	}
	if(cmd == 0) {
		// 停止
		HAL_GPIO_WritePin(COIL_2_GPIO_Port, COIL_2_Pin, GPIO_PIN_RESET);
	}
}
void DRV8870_3_Run(uint8_t cmd)
{
	if(cmd == 1) {
		// 正转
		HAL_GPIO_WritePin(COIL_3_GPIO_Port, COIL_3_Pin, GPIO_PIN_SET);
	}
	if(cmd == 0) {
		// 停止
		HAL_GPIO_WritePin(COIL_3_GPIO_Port, COIL_3_Pin, GPIO_PIN_RESET);
	}
}
void DRV8870_4_Run(uint8_t cmd)
{
	if(cmd == 1) {
		// 正转
		HAL_GPIO_WritePin(COIL_4_GPIO_Port, COIL_4_Pin, GPIO_PIN_SET);
	}
	if(cmd == 0) {
		// 停止
		HAL_GPIO_WritePin(COIL_4_GPIO_Port, COIL_4_Pin, GPIO_PIN_RESET);
	}
}

// 转膜电机
void Transfer_Membrane(uint16_t Time)
{
	switch(Time) {
	case 1:
		DRV8870_3_Run(1);
		HAL_Delay(17);
		break;
	case 2:
		DRV8870_3_Run(1);
		HAL_Delay(29);
		break;
	case 3:
		DRV8870_3_Run(1);
		HAL_Delay(44);
		break;
	case 4:
		DRV8870_3_Run(1);
		HAL_Delay(61);
		break;
	case 5:
		DRV8870_3_Run(1);
		HAL_Delay(90);
		break;
	case 6:
		DRV8870_3_Run(1);
		HAL_Delay(175);
		break;
	case 7:
		DRV8870_3_Run(1);
		HAL_Delay(260);
		break;
	case 8:
		DRV8870_3_Run(1);
		HAL_Delay(355);
		break;
	case 9:
		DRV8870_3_Run(1);
		HAL_Delay(440);
		break;
	}
	DRV8870_3_Run(0);
}
